{\rtf1\ansi\ansicpg1252\uc1 \deff1\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f5\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Helvetica;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;
\red192\green192\blue192;}{\stylesheet{\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 \snext0 Normal;}{\s1\li180\ri144\sb240\sa60\sl240\slmult0\nowidctlpar\adjustright \b\f5\ul \sbasedon0 \snext0 heading 1;}{
\s2\li180\ri144\sb120\sa60\sl240\slmult0\nowidctlpar\adjustright \b\f1\fs20 \sbasedon0 \snext0 heading 2;}{\s3\li360\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \b\f1 \sbasedon0 \snext17 heading 3;}{\*\cs10 \additive Default Paragraph Font;}{\*
\cs15 \additive \f1\fs16\up6\lang1033 \sbasedon10 footnote reference;}{\s16\li180\ri144\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 \sbasedon0 \snext16 footnote text;}{\s17\li576\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 
\sbasedon0 \snext17 Normal Indent;}{\s18\fi-216\li360\ri144\sl240\slmult0\nowidctlpar\tx360\adjustright \f2\fs20 \sbasedon0 \snext18 Code;}{\s19\li360\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 \sbasedon0 \snext19 In1;}{
\s20\fi-216\li360\ri144\sb140\sl240\slmult0\nowidctlpar\adjustright \b\f1\fs20 \sbasedon0 \snext0 H2;}{\s21\li360\ri144\sb140\sl240\slmult0\nowidctlpar\adjustright \b\f1\fs20 \sbasedon0 \snext19 H3;}{\s22\fi-187\li360\ri144\sa60\sl240\slmult0\nowidctlpar
\tx360\adjustright \f1\fs20 \sbasedon0 \snext22 LS1;}{\s23\fi-180\li540\ri144\sa60\sl240\slmult0\nowidctlpar\tx540\adjustright \f1\fs20 \sbasedon22 \snext23 LS2;}{\s24\fi-2563\li2707\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\tx2700\adjustright \f1\fs20 
\sbasedon0 \snext24 T2;}{\s25\li180\ri144\sl-43\slmult0\nowidctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrbtw\brdrs\brdrw15\brsp20 \adjustright \f1\fs20 \sbasedon0 \snext26 TLine;}{\s26\fi-4003\li4147\ri144\sb40\sa60\sl240\slmult0\nowidctlpar
\tx2340\tx4140\adjustright \f1\fs20 \sbasedon0 \snext26 T3;}{\s27\fi-4363\li4507\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\tx1620\tx3060\tx4500\adjustright \f1\fs20 \sbasedon0 \snext27 T4;}{\s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright 
\b\f1\cf2 \sbasedon0 \snext0 H1;}{\s29\fi-216\li360\ri144\sa60\sl240\slmult0\nowidctlpar\tx360\adjustright \f1\fs20 \sbasedon22 \snext29 NUM1;}{\s30\fi-216\li576\ri144\sa60\sl240\slmult0\nowidctlpar\tx576\adjustright \f1\fs20 \sbasedon29 \snext30 NUM2;}{
\s31\li144\sl240\slmult0\keep\nowidctlpar\tx360\tx547\tx720\tx907\tx1080\tx1267\adjustright \f2\fs20 \sbasedon18 \snext31 CodeNW;}{\s32\li360\sl240\slmult0\keep\nowidctlpar\tx540\tx720\tx907\tx1080\tx1267\tx1440\adjustright \f2\fs20 \sbasedon31 \snext32 
CodeNWIn;}{\s33\li180\sb40\sa60\sl240\slmult0\keep\nowidctlpar\tx360\tx547\tx720\tx907\tx1080\tx1267\adjustright \f1\fs20 \sbasedon0 \snext20 Syntax;}{\s34\fi-216\li360\ri144\sb120\sl240\slmult0\nowidctlpar\tx2347\tx4147\adjustright \b\f1\fs20 
\sbasedon20 \snext25 THead;}{\s35\fi-576\li720\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\tx720\tx8820\adjustright \f1\fs20 \sbasedon0 \snext0 Note;}{\s36\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 \sbasedon0 \snext36 TCell;}{
\s37\li180\ri144\sl240\slmult0\keepn\nowidctlpar\tx1440\tx2700\tx3960\adjustright \f1\fs16 \sbasedon0 \snext0 H1Link;}{\s38\li180\ri144\sa104\sl240\slmult0\keepn\nowidctlpar\adjustright \b\f1\cf2 \sbasedon28 \snext37 H1ns;}{
\s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 \sbasedon0 \snext39 endnote text;}{\*\cs40 \additive \super \sbasedon10 endnote reference;}}{\info{\title #$K MASTAPP Help Contents}{\author Preferred Customer}
{\operator Bill Weber}{\creatim\yr1998\mo6\dy10\hr17\min59}{\revtim\yr1998\mo6\dy10\hr17\min59}{\version2}{\edmins1}{\nofpages4}{\nofwords1677}{\nofchars9564}{\*\company Dell Computer Corporation}{\nofcharsws11745}{\vern89}}
\widowctrl\endnotes\aendnotes\ftnnrlc\aftnnar\hyphcaps0\viewkind4\viewscale127\viewzk2 \fet1\sectd \linex0\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3
\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}
{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain 
\s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ MastappHelpContents}}${\footnote\ftnalt 
\pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ MASTAPP Help Contents}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 Contents; MASTAPP}}}{ MASTAPP Help Contents
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {Click the underlined text that matches a button's label to learn more about the parts of  MASTAPP, the sample application that demonstrates Delphi's database capabilities.

\par Help for each button describes the button's purpose in the application, lists the MASTAPP project files used to build that part of the application, and details significant database and Delphi features that the button illustrates.
\par }\pard\plain \s22\fi-187\li360\ri144\sa60\sl240\slmult0\nowidctlpar\tx360\adjustright \f1\fs20 {\{bmc bullet.bmp\}\tab }{\uldb New Orders}{\v NewOrders}{ enters new customer orders.
\par \{bmc bullet.bmp\}\tab }{\uldb Browse}{\v BrowseForm}{ examines existing orders.
\par \{bmc bullet.bmp\}\tab }{\uldb Parts}{\v PartsForm}{ maintains the MAST inventory.
\par \{bmc bullet.bmp\}\tab }{\uldb Reports}{\v ReportSmith}{ prints MASTAPP reports using ReportSmith.
\par \{bmc bullet.bmp\}\tab }{\uldb Close}{\v CloseButton}{ exits MASTAPP.
\par \{bmc bullet.bmp\}\tab }{\uldb Help}{\v HelpOnHelp}{ describes how MASTAPP help is implemented.
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {Click }{\uldb Splash Screen}{\v SplashScreen}{ to learn about the banner that appears when you start MASTAPP.
\par }\pard\plain \s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ SelectCustomer}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Select Customer}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {
\cs40\super K}{ select customers; choose customers; customers by name}}}{ Select Customer
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {This form enables you to s
elect a customer by name for placing new orders, or for browsing existing orders. Select the desired customer, and click OK. The Select Customer form is the same form used by }{\uldb Select Part}{\v SelectPart}{
, except that the data source and data fields are different.
\par Source code for this form can be found in:
\par SRCHDLG.PAS
\par SRCHDLG.DFM
\par }\pard\plain \s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ SelectPart}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Select Part}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 select parts; choose parts; parts by name}}}{ Select Part
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {This form enables you to select a part by name when entering customer orders. Select the desired part, and click OK. The Select Part form is the same form used by }{\uldb 
Select Customer}{\v SelectCustomer}{, except that the data source and data fields are different.
\par Source code for this form can be found in:
\par SRCHDLG.PAS
\par SRCHDLG.DFM
\par }\pard\plain \s38\li180\ri144\sa104\sl240\slmult0\keepn\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ NewOrders}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ New Orders}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 orders; new orders; enter new orders}}}{ New Orders
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {New Orders enables you to enter new customer orders, modify existing customer orders, browse existing orders, or print the current order.
\par The form contains two }{\i TDBNavigator}{ controls, one for editing and ins
erting records, and another for navigating among records. When you enter a new record, the navigation buttons are disabled, and only the Post and Insert buttons are enabled on the other control. When you browse existing records, the navigation buttons are
 enabled. When you edit a record, all navigation buttons on both navigator controls are enabled as appropriate.
\par A mode indicator in the upper right corner of the form indicates whether you are }{\uldb inserting}{\v InsertMode}{, }{\uldb editing}{\v EditMode}{, or }{\uldb browsing}{\v BrowseMode}{.
\par Source code for the New Orders form can be found in:
\par EDORDERS.PAS
\par EDORDERS.DFM
\par }\pard\plain \s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ InsertMode}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Insert Mode}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 insert mode; inserting orders}}}{ Insert Mode
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {The following behavior can be expected on the }{\uldb New Orders}{\v NewOrders}{ form in insert mode.
\par The OrderNo is automatically filled in with the next available order number and displayed in the upper right hand corner of the form. The Date }{\i TDBEdit}{ control is automatically filled in with today's date. Select a customer from the CompanyCombo }{
\i TDBLookupComboBox.}{ When you 
select a customer from the list, the application fills in the rest of the customer information in the Bill To edit controls. You can cut and paste from the Bill To edit controls to the Ship To edit controls, or enter different values as appropriate.

\par The Sold By, Terms, Payment, and Ship Via fields are TDBComboBox controls tied to the ORDERS table. You can select values for these fields from the drop-down lists.
\par You can enter parts ordered by the customer in the TDBGrid control.  You can double-click in the grid, or click the ellipsis button in the grid to select parts from the MAST inventory. Both methods invoke the }{\uldb Select Part}{\v SelectPart}{ form.

\par As parts are entered in the grid, calculations are automatically performed to update the values in the Subtotal, Tax
 Rate, Tax Total, Freight, and Due database edit controls. These controls, and the Paid control, are connected to the ORDERS table. When the new record is posted, these values are inserted into the ORDERS table.
\par }\pard\plain \s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ EditMode}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Edit Mode}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 edit mode; editing orders}}}{ Edit Mode
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {The following behavior can be expected on the }{\uldb New Orders}{\v NewOrders}{ form in edit mode.
\par The first record in the ORDERS table is displayed in the form.  Use the navigation controls to scroll through all records. You can modify fields within records as long as those fields are not read-only.
\par You can enter parts ordered by the customer in the TDBGrid control.  You can double-click in the grid, or click the ellipsis button in the grid to select parts from the MAST inventory. Both methods invoke the }{\uldb Select Part}{\v SelectPart}{ form.

\par As parts are entered in the grid, calculations are automatically performed to update the values in the Subtotal, Tax Rate, Tax Total, Freight, and Due database edit controls. These controls, and the  Paid control, are con
nected to the ORDERS table. When the new record is posted, these values are inserted into the ORDERS table.
\par }\pard\plain \s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ BrowseMode}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Browse Mode}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 browse mode; browsing orders}}}{ Browse Mode
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {The following behavior can be expected on the }{\uldb New Orders}{\v NewOrders}{ form in edit mode.
\par The first record in the ORDERS table is displayed in the form.  Use the navigation controls to scroll through all records.  If you attempt to modify any field in a record you enter }{\uldb Edit Mode}{\v EditMode}{.
\par }\pard\plain \s38\li180\ri144\sa104\sl240\slmult0\keepn\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ BrowseForm}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Browse}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 browse orders by customers; orders by customer; customer orders}}}{ Browse
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {To examine orders placed by customers, click the Browse button. It invokes the Orders By Customer form.
\par Orders By Customer displays two }{\i TDBGrid}{ controls. The top control displays all MAST cust
omers, ordered by customer number. When the form first appears, the first customer number in the CUSTOMER table is selected. The bottom grid displays all orders associated with the current customer number.
\par Use the }{\i TDBNavigator}{ control to scroll on either g
rid. To establish which grid the navigator affects, click on the desired grid. If you scroll to a different record on the customer grid, the orders grid changes to reflect those orders associated with the current customer number. Scrolling the bottom grid
 lets you see all orders associated with the current customer number.
\par The Define Query button invokes the Specify Range dialog box, where you can enter a narrower range of dates against which to check for customer invoices, in order to reduce the number of 
records returned in customer grid. After you define a query, use the Activate Query button to execute the query. When a query is active, the Activate Query button remains in a depressed state. To deactivate the query and restore the default customer list 
display, click the Activate Query button again.
\par The Orders By Customer form demonstrates how to switch data sources for a control programmatically at run time. The Define Query and Activate Query code demonstrates how to construct parameterized SQL queries 
from user input at run time, and how to switch between data sets programmatically.
\par Source code for Orders By Customer can be found in:
\par BRCUSTORD.PAS
\par BRCUSTORD.DFM
\par }\pard\plain \s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ PartsForm}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Parts}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 inventory; parts inventory; stock}}}{ Parts
\par }\pard\plain \fi-360\li504\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {The Browse Parts form enables you to browse and edit the MAST inventory
\par }\pard \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright {The form contains a }{\i TDBGrid}{ for displaying all parts and backordered parts, a }{\i TDBNavigator}{
 control for scrolling through records, a Backorder button for querying to see all parts on back order, an Edit button that displays the }{\uldb Edit Parts}{\v EditParts}{ form for adding or modifying parts, and a Close button for exiting the form.
\par Browse Parts demonstrates how a single data source can be used by either a TTable or TQuery component. By default, when the form appears, it d
isplays data for all parts from the TTable component. Clicking the Backorders button invokes code that connects TQuery to the data source and executes a query that displays only those parts on back order.
\par }\pard \fi-360\li504\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright {Source code for Browse Parts can be found in:
\par BRPARTS.PAS
\par BRPARTS.DFM
\par }\pard\plain \s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ EditParts}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Edit Parts}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 edit parts; modify parts}}}{ Edit Parts
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {The Edit Parts form enables you to add or modify parts in the MAST inventory, and print information about parts.
\par The form contains a }{\i TDBNavigator}{ control for scrolling through records, adding and deleting records, and posting or canceling changes. It contains six }{\i TDBEedit}{
 controls for display, entry, and modification of fields in the PARTS table. It also contains a }{\i TDBLookupComboBox}{ control for display, entry, and modification of vendor names in the VENDORS table based on vendor numbers in the PARTS table.
\par Edit Parts demonstrates how to look up, display, and edit field values in one table based on key values in another table by using }{\i TDBLookupComboBox}{.
\par }\pard \fi-360\li504\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright {Source code for Edit Parts can be found in:
\par EDPARTS.PAS
\par EDPARTS.DFM
\par }\pard\plain \s38\li180\ri144\sa104\sl240\slmult0\keepn\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ ReportSmith}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Reports}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 reports; displaying reports; printing reports}}}{ Reports
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {The Reports form lets you specify three different types of reports to print:
\par }\pard\plain \s22\fi-187\li360\ri144\sa60\sl240\slmult0\nowidctlpar\tx360\adjustright \f1\fs20 {\{bmc bullet.bmp\}\tab }{\i Customer}{ }{\i List}{ lists MAST customers.
\par \{bmc bullet.bmp\}\tab }{\i Orders}{ }{\i History}{ details the orders placed with MAST.
\par \{bmc bullet.bmp\}\tab }{\i Invoice}{ provides a full report on a specified invoice.
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {These reports were built using the new QuickReport components included in Delphi.
\par Fu
rthermore, these reports were designed using the new QuickReport Form (File | New | Report) which eliminates the need for a TForm descendant object to be streamed in and out with the report itself (i.e. the TQuickRep component and its associated child com
ponents).
\par The source code for the three reports are listed below.
\par }{\b\i Customer}{\b  }{\b\i List}{\b  Report: 
\par }{CUSTRPT.PAS 
\par CUSTRPT.DFM
\par }{\b\i Orders}{\b  }{\b\i History}{\b  Report: 
\par }{ORDERRPT.PAS
\par ORDERRPT.DFM
\par }{\b\i Invoice}{\b  Report: 
\par }{INVCRPT.PAS
\par INVCRPT.DFM
\par }\pard\plain \s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ CloseButton}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Close}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}{
 close; exit; quit}}}{ Close
\par }\pard\plain \fi-360\li504\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {To exit MASTAPP, click Close, or choose File|Exit from the menu.
\par }\pard\plain \s38\li180\ri144\sa104\sl240\slmult0\keepn\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ HelpOnHelp}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Help on Help}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K}
{ help; MASTAPP help}}}{ Help on Help
\par }\pard\plain \li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {MASTAPP help demonstrates how to access a custom help file from a Delphi application. To link a help file to an application and access it, follow these steps:
\par }\pard\plain \s29\fi-216\li360\ri144\sa60\sl240\slmult0\nowidctlpar\tx360\adjustright \f1\fs20 {1.\tab Set the application's }{\i HelpFile}{
 property to the name of the .HLP file to use. For example, in MASTAPP.DPR, the following code specifies the name of the help file to use for MASTAPP:
\par }\pard\plain \s32\li360\sl240\slmult0\keep\nowidctlpar\tx540\tx720\tx907\tx1080\tx1267\tx1440\adjustright \f2\fs20 {Application.HelpFile := 'MASTAPP.HLP';
\par }\pard\plain \s29\fi-216\li360\ri144\sa60\sl240\slmult0\nowidctlpar\tx360\adjustright \f1\fs20 {2.\tab Set the main component's }{\i HelpContext}{ property to }{\i 1}{. For example, in MASTAPP, MAIN.PAS contains the code for  }{\i MainForm}{. Select the }
{\i MainForm}{ component, then set its }{\i HelpContext}{ to }{\i 1}{ in the Object Inspector.
\par 3.\tab To access help from a button, create a help procedure that calls the }{\i HelpCommand}{
 method with a valid WINHELP command. To display the contents for a help file, use the HELP_CONTENTS command, and set the data integer to 0. In MASTAPP, the following help procedure is defined with a context ID that calls the MASTAPP Contents page:
\par }\pard\plain \s32\li360\sl240\slmult0\keep\nowidctlpar\tx540\tx720\tx907\tx1080\tx1267\tx1440\adjustright \f2\fs20 {\b procedure}{ TMainForm.HelpBtnClick(Sender: TObject);
\par }{\b begin}{
\par    Application.HelpCommand(HELP_CONTENTS, 0);
\par }{\b end}{;
\par }\pard\plain \s35\fi-576\li720\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\tx720\tx8820\adjustright \f1\fs20 {\b Note}{  At design time, set the }{\i HelpContext}{ property for individual component
s to specify a context-sensitive help screen to display if the user presses F1 when those components have focus. In MASTAPP, context-sensitive help is implemented for all components on the }{\uldb Parts}{\v PartsForm}{ form, and the }{\uldb Edit Parts}{
\v EditParts}{ form.
\par }\pard\plain \s29\fi-216\li360\ri144\sa60\sl240\slmult0\nowidctlpar\tx360\adjustright \f1\fs20 {4.\tab Create a button that calls a help procedure when clicked. In MASTAPP, MAIN.PAS contains the following code for creating a help button:
\par }\pard\plain \s32\li360\sl240\slmult0\keep\nowidctlpar\tx540\tx720\tx907\tx1080\tx1267\tx1440\adjustright \f2\fs20 {HelpBtn: TSpeedButton;
\par }\pard\plain \s19\li360\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {In the Object Inspector, set the button's }{\i OnClick}{ event to the name of the help procedure to call. In MASTAPP, the name of the procedure that is called in }{\i 
HelpBtnClick}{.
\par }\pard\plain \s29\fi-216\li360\ri144\sa60\sl240\slmult0\nowidctlpar\tx360\adjustright \f1\fs20 {5.\tab 
Create a procedure that calls HelpCommand with the WINHELP command, HELP_QUIT to quit WINHELP when the application ends. IN MASTAPP, MAIN.PAS contains the following procedure for exiting WINHELP:
\par }\pard\plain \s32\li360\sl240\slmult0\keep\nowidctlpar\tx540\tx720\tx907\tx1080\tx1267\tx1440\adjustright \f2\fs20 {\b procedure}{ TMainForm.FormDestroy(Sender: TObject);
\par }{\b begin}{
\par    Application.HelpCommand(HELP_QUIT,0);
\par }{\b end}{;
\par }\pard\plain \s28\li180\ri144\sa104\sl240\slmult0\nowidctlpar\adjustright \b\f1\cf2 {\page }{\cs40\super #{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super #}{ SplashScreen}}$
{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super $}{ Splash Screen}}K{\footnote\ftnalt \pard\plain \s39\li180\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {\cs40\super K
}{ splash screen; banner; start-up screen}}}{ Splash Screen
\par }\pard\plain \s19\li360\ri144\sb40\sa60\sl240\slmult0\nowidctlpar\adjustright \f1\fs20 {The Splash screen appears when MASTAPP starts. MASTAPP.DPR calls }{\i TSplashForm.Create}{ to create the splash screen and the instance of the application, calls }{\i 
SplashForm.Show}{ to display the form while all other MASTAPP forms are created, and calls }{\i SplashForm.Update}{ to display the application's "Loading ..." message on the form.
\par When all MASTAPP forms are created, MASTAPP.DPR calls }{\i SplashForm.Hide}{ to hide the Splash screen display.
\par Source code for the splash screen can be found in:
\par SPLASH.PAS
\par SPLASH.DFM
\par }}